Correr el mismo código de clase, para Chroma y Hue
Caracterizar los Cluster
Utilizar algún gráfico que muestre el número de cluster
Pasar de coordenadas Lab a RGB (Investigar) y hacer los cluster con las coordanadas RGB
Existe alguna relación del Chroma y Hue para coordenadas RGB, si es cierto, entonces realiza los cluster con RGB
Pueden colocar otro tipo de coordenadas (ej. HLS, HVS)
\[C=\sqrt{(a^2+b^2)}\] 2. Hub:
\[h=arctan(\frac{b}{a})\] #Solución Chroma y Hub
dfcie <- read_excel("C:/Users/57321/Desktop/CE 2022-1/Cielab_tueste_cafe.xlsx")
fig <- plot_ly(data = dfcie,
x = ~C,
y = ~H,
#z = ~H,
size = 0.7,
color = ~tueste)
fig
## No trace type specified:
## Based on info supplied, a 'scatter' trace seems appropriate.
## Read more about this trace type -> https://plotly.com/r/reference/#scatter
## No scatter mode specifed:
## Setting the mode to markers
## Read more about this attribute -> https://plotly.com/r/reference/#scatter-mode
M = dfcie[ ,c(-1,-2,-3,-4)]
M
## # A tibble: 120 x 5
## C H R G B
## <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 32.3 0.748 72.6 21.1 2.57
## 2 29.6 0.791 62.7 17.6 -5.16
## 3 33.4 0.798 68.6 17.5 -7.66
## 4 29.3 0.769 65.8 20.2 0.679
## 5 28.5 0.814 63.7 21.1 -1.00
## 6 30.2 0.761 63.8 16.5 -4.55
## 7 34.4 0.783 76.7 23.0 1.24
## 8 32.2 0.839 68.2 20.8 -5.83
## 9 27.9 0.770 60.3 17.2 -3.33
## 10 32.1 0.767 70.7 20.4 -0.0358
## # ... with 110 more rows
## Número óptimo de clusters
Ms = scale(M)
fviz_nbclust(Ms,
FUNcluster = kmeans,
method = 'gap_stat',
diss = get_dist(Ms,
'euclidean'))
clus1 = kmeans(Ms, 3)
dfcie$cluster <- clus1$cluster
dfcie <- dfcie[c(-1,-2,-3,-4)]
dfcie |>
group_by(cluster) |>
summarise(media_C = mean(C),
media_H = mean(H),
desv_C = sd(C),
desv_H = sd(H),
coeV_C = 100 * desv_C/media_C,
coeV_H = 100 *desv_H/media_H,
)
## # A tibble: 3 x 7
## cluster media_C media_H desv_C desv_H coeV_C coeV_H
## <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 38.4 0.842 1.94 0.0153 5.05 1.81
## 2 2 30.9 0.788 2.27 0.0243 7.36 3.08
## 3 3 24.1 0.792 2.39 0.0377 9.90 4.76
#table(dfcie$tueste,
# clus1$cluster) ## Matriz de confusión
dfcie <- read_excel("C:/Users/57321/Desktop/CE 2022-1/Cielab_tueste_cafe.xlsx")
fig <- plot_ly(data = dfcie,
x = ~R,
y = ~G,
z = ~B,
size = 0.7,
color = ~tueste)
fig
## No trace type specified:
## Based on info supplied, a 'scatter3d' trace seems appropriate.
## Read more about this trace type -> https://plotly.com/r/reference/#scatter3d
## No scatter3d mode specifed:
## Setting the mode to markers
## Read more about this attribute -> https://plotly.com/r/reference/#scatter-mode
M = dfcie[ ,c(-1,-2,-3,-4,-5,-6)]
M
## # A tibble: 120 x 3
## R G B
## <dbl> <dbl> <dbl>
## 1 72.6 21.1 2.57
## 2 62.7 17.6 -5.16
## 3 68.6 17.5 -7.66
## 4 65.8 20.2 0.679
## 5 63.7 21.1 -1.00
## 6 63.8 16.5 -4.55
## 7 76.7 23.0 1.24
## 8 68.2 20.8 -5.83
## 9 60.3 17.2 -3.33
## 10 70.7 20.4 -0.0358
## # ... with 110 more rows
## Número óptimo de clusters
Ms = scale(M)
fviz_nbclust(Ms,
FUNcluster = kmeans,
method = 'gap_stat',
diss = get_dist(Ms,
'euclidean'))
clus1 = kmeans(Ms, 3)
dfcie$cluster <- clus1$cluster
dfcie <- dfcie[-4]
dfcie |>
group_by(cluster) |>
summarise(media_R = mean(R),
media_G = mean(G),
media_B = mean(B),
desv_R = sd(R),
desv_G = sd(G),
desv_B = sd(B),
coeV_R = 100 * desv_R/media_R,
coeV_G = 100 *desv_G/media_G,
coeV_B = 100 *desv_B/media_B)
## # A tibble: 3 x 10
## cluster media_R media_G media_B desv_R desv_G desv_B coeV_R coeV_G coeV_B
## <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 70.6 32.6 18.7 6.16 2.84 2.71 8.72 8.71 14.5
## 2 2 66.9 19.5 -2.67 4.93 2.39 3.30 7.36 12.3 -124.
## 3 3 112. 50.1 23.8 5.47 3.17 2.40 4.90 6.33 10.1
#table(dfcie$tueste,
# clus1$cluster) ## Matriz de confusión